<?php
class Agenda extends AppModel {
	var $name = 'Agenda';
	var $validate = array(
		'client_id' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				//'message' => 'Your custom message here',
				//'allowEmpty' => false,
				//'required' => false,
				//'last' => false, // Stop validation after this rule
				//'on' => 'create', // Limit validation to 'create' or 'update' operations
			),
		),
		'user_id' => array(
			'numeric' => array(
				'rule' => array('numeric'),
				//'message' => 'Your custom message here',
				//'allowEmpty' => false,
				//'required' => false,
				//'last' => false, // Stop validation after this rule
				//'on' => 'create', // Limit validation to 'create' or 'update' operations
			),
		),
	);
	//The Associations below have been created with all possible keys, those that are not needed can be removed

/*
	var $belongsTo = array(
		'Client' => array(
			'className' => 'Client',
			'foreignKey' => 'client_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		),
		'User' => array(
			'className' => 'User',
			'foreignKey' => 'user_id',
			'conditions' => '',
			'fields' => '',
			'order' => ''
		)
	);

*/
	var $hasMany = array(
		'AgendasSegment' => array(
			'className' => 'AgendasSegment',
			'foreignKey' => 'agenda_id',

		)
	);


	function AgendasDeUnMedico($medico_id=0, $sucursal_id=0){

		//---------------------------------------------------------------------
		// Muestra las agendas publicas y locales de un medico de una sucursal
		//---------------------------------------------------------------------
		if($medico_id==0 or $sucursal_id==0){
			return '';
		} else {

			$ag = $this->find('all', array(
							'conditions' => array(
									'Agenda.sucursal_id' => $sucursal_id ,
									'Agenda.user_id'     => $medico_id ,
									'Agenda.alcance !=' => 'pri',
									'Agenda.staterecord_id' => 1,
									),
							'order' => array('Agenda.nombre' => 'ASC')
					) );

			if($ag){
				$Agendas = array();
				foreach($ag as $z){
					if(!empty($z['AgendasSegment'])) {
						$Agendas[$z['Agenda']['id']]['id']      = $z['Agenda']['id'];
						$Agendas[$z['Agenda']['id']]['name']    = $z['Agenda']['nombre'];
						$Agendas[$z['Agenda']['id']]['alcance'] = $z['Agenda']['alcance'];
					}
				}
				return $Agendas;
			} else {
				return '';
			}

		}

	}


	function ObtenerAgendas($sucursal_id=0,$rol_actual='profesional',$profesional_id=0){


		$administradores_de_agenda = array("asistente", "secretaria", "administrador");

		if ( !in_array($rol_actual, $administradores_de_agenda) and $profesional_id>0 ) {
			$solo_de_un_medico = true;
		} else {
			$solo_de_un_medico = false;
		}


        //-------- Obtengo los medicos y agendas de esta sucursal
        App::import('User');
        $User = new User();
        $Medicos = $User->MedicosDeUnaSucursal($sucursal_id);


		//---------------------------------------------------------------
		//                               Obtener Agendas de esta sucursal
		//---------------------------------------------------------------
			$xAgendas = $this->find('all',array(
									'conditions'=>array(
										'Agenda.sucursal_id' => $sucursal_id,
										'NOT' => array ('Agenda.alcance' => 'pri'),
										'NOT' => array ('Agenda.staterecord_id' => array('2','3') )
									)
								));
			$Agendas = array();
			$Agendas[0] = 'Todos los turnos de hoy';					
			foreach ($xAgendas as $value) {
				$user_id = $value['Agenda']['user_id'];
				if($user_id==0 or isset($Medicos[$user_id]) ){
					$nombre_agenda = '';
					if($user_id>0){
						if(!$solo_de_un_medico){
							$nombre_agenda = $Medicos[$user_id]['name'].' '.$value['Agenda']['nombre'];	
						} elseif($profesional_id==$user_id){
							$nombre_agenda = $Medicos[$user_id]['name'].' '.$value['Agenda']['nombre'];	
						}
						
					} else {
						$nombre_agenda = $value['Agenda']['nombre'];
					}
					if(!empty($nombre_agenda)){
						$Agendas[$value['Agenda']['id']] = $nombre_agenda;						
					}
					
				}
			}

		return $Agendas;	

	}


}
?>